|
ISO/IEC 10646 (UCS; Universal Coded Character Set) は、符号化文字集合や文字符号化方式などを定めた、文字コードの国際標準のひとつで、業界規格のUnicodeと概ね互換であることが特徴である。日本の対応規格はJIS X 0221(国際符号化文字集合)。 UCSの文字空間は0 - 10FFFFである。古い規格では21ビットのUnicodeをベースにして文字空間を31ビットに拡張したものとされ、Unicodeの最大値であるU+10FFFFより大きなコードも使用できるという点でUnicodeに対して上位互換であったが、2006年の改訂によりUnicodeで使用できない領域には文字が「永久に定義されない」こととされ下位互換を持つことになった。2011年の改訂では明確に0 - 10FFFFと定義された。 符号化方式は、Unicodeと同じUTF-8やUTF-16が使われることが多い。ただし、Unicodeの『UTF』が『Unicode Transformation Format』を意味するのに対して、ISO/IEC 10646の『UTF』は『UCS Transformation Format』を意味する点が違う。 面 (plane)、区 (row)、点 (cell) として分けられ、Unicodeと同じ第0面の基本多言語面 (BMP; Basic Multilingual Plane) と追加面の第1 - 16面までの範囲で文字が定義されている。古い規格では群 (group) という分類もあったが2011年の改訂で廃止された。 == 制定の経緯とその影響 == この規格は制定の一歩手前の段階までは、現在の姿とはかなり異なる仕様だった。4オクテットの符号であり、各オクテットをそれぞれ群、面、区、点とする。各面には従来のコントロール領域を避けた0x20 - 0x7Fと0xA0 - 0xFFの範囲に文字を割り当てる。その範囲にISO/IEC 2022に従った構造の各国コード(ISO/IEC 8859やJIS X 0208、GB 2312など)を平行移動してそっくり収容するという、従来のコード系との互換性を最大限に尊重した構成をとっていた。 この案は1990年に国際標準の一歩前の段階のDIS (Draft International Standard) として作成されたが、1991年6月の投票で否決された。その理由は、同じ時期にアメリカの企業群がUnicode仕様を作成したため、同じ目的の規格が2つ作られることを避けることだった。 その後、DIS 10646とUnicodeとを一本化する作業が行われた。既存規格との整合性を重んじたDIS 10646に対して、Unicodeは各種アルファベット類は新規割り当て、漢字は日中韓を統合、符号位置はコントロール領域まで全て使って2オクテット固定という、全く異なる方針で設計されていた。結果として、「群・面・区・点」という用語は残しながら、第0群第0面を基本多言語面 (BMP) と称し、BMPにUnicodeをそっくり入れてその他の群・面は未使用という、実質2オクテットの符号となった。 結局、Unicodeに乗っ取られ第1版とは似ても似つかぬ符号になったDIS 10646第2版が、そのままInternational Standardとして制定されることとなった。1993年のことである。 このような経緯をたどり、既存規格との対応が不明確な定義になってしまったため、既存規格とのコード変換において、似たような形の多い記号のどれに対応させるのかの判断が困難となる問題が生じた。これにより、製品によってコード変換が異なる問題が常態化し、この問題に起因する文字化けは今に至るまで解決の目処が経っていない。ただし漢字については、元になった各国規格の符号位置が明示されているため変換の違いは生じていない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ISO/IEC 10646」の詳細全文を読む スポンサード リンク
|